
using System.Collections.Generic;

namespace Cesium3DTilesSelection
{
    /**
     * @brief Reports the results of {@link Tileset::updateView}.
     *
     * Users of a {@link Tileset} will call {@link Tileset::updateView} and receive
     * this structure so that they can update the state of their rendering system
     * accordingly. The tileset will internally keep track the current state of the
     * tiles as their {@link Tile::getLastSelectionState} throughout the rendering
     * process, and use this structure to provide information about the state
     * changes of tiles to clients.
     */
    public class ViewUpdateResult
    {
        /**
         * @brief The tiles that are contained in the render list of the current
         * frame.
         */
        public List<Tile> tilesToRenderThisFrame=new List<Tile>();

        /**
         * @brief The tiles that have been removed from the render list for the
         * current frame
         */
        public List<Tile> tilesToNoLongerRenderThisFrame=new List<Tile>();

        //! @cond Doxygen_Suppress
        public int tilesLoadingLowPriority = 0;
        public int tilesLoadingMediumPriority = 0;
        public int tilesLoadingHighPriority = 0;

        public int tilesVisited = 0;
        public int culledTilesVisited = 0;
        public int tilesCulled = 0;
        public int maxDepthVisited = 0;
        //! @endcond
    }

}